package com.siki.pojo.enumerate;

import lombok.Getter;

import java.util.ArrayList;
import java.util.List;

@Getter
public enum DepartmentPosition {
    Director("总监"),
    Deputy_Director("副总监"),

    Program_Group("节目组"),
    Program_director("节目编导"),
    Host("主持人"),
    Set_design("布场设计"),

    Marketing_Group("营销组"),
    Marketing_Commissioner("营销专员"),

    Technology_Group("技术组"),
    Web_Tools("前端设计师"),
    PHP_Developer("后端工程师"),
    UI_Designer("UI设计师"),

    Information_Group("资讯组"),
    Editor("责任编辑"),

    Design_Group("设计组"),
    Designer("平面设计师"),
    Painter("绘师"),

    Administrative_Group("行政组"),
    Administrative_Commissioner("行政专员"),

    Photograph_Group("摄制组"),
    Photographer("摄制师");

    String name;

    DepartmentPosition(String name) {
        this.name = name;
    }

    public static List<DepartmentPosition> getDepartment() {
        List<DepartmentPosition> departmentPositions = new ArrayList<>();
        departmentPositions.add(DepartmentPosition.Program_Group);
        departmentPositions.add(DepartmentPosition.Marketing_Group);
        departmentPositions.add(DepartmentPosition.Information_Group);
        departmentPositions.add(DepartmentPosition.Design_Group);
        departmentPositions.add(DepartmentPosition.Administrative_Group);
        departmentPositions.add(DepartmentPosition.Photograph_Group);
        departmentPositions.add(DepartmentPosition.Technology_Group);
        return departmentPositions;
    }

    public static List<DepartmentPosition> getPosition(DepartmentPosition departmentPosition) {
        List<DepartmentPosition> departmentPositions = new ArrayList<>();
        departmentPositions.add(DepartmentPosition.Director);
        departmentPositions.add(DepartmentPosition.Deputy_Director);
        switch (departmentPosition) {
            case Program_Group ->{
                departmentPositions.add(Program_director);
                departmentPositions.add(Host);
                departmentPositions.add(Set_design);
            }
            case Marketing_Group -> departmentPositions.add(Marketing_Commissioner);
            case Information_Group -> departmentPositions.add(Editor);
            case Design_Group -> {
                departmentPositions.add(Designer);
                departmentPositions.add(Painter);
            }
            case Administrative_Group -> departmentPositions.add(Administrative_Commissioner);
            case Photograph_Group -> departmentPositions.add(Photographer);
            case Technology_Group -> {
                departmentPositions.add(Web_Tools);
                departmentPositions.add(PHP_Developer);
                departmentPositions.add(UI_Designer);
            }
            default -> departmentPositions.clear();

//            case Program_Group:
//                departmentPositions.add(Program_director);
//                departmentPositions.add(Host);
//                departmentPositions.add(Set_design);
//                break;
//            case Marketing_Group:
//                departmentPositions.add(Marketing_Commissioner);
//                break;
//            case Information_Group:
//                departmentPositions.add(Editor);
//                break;
//            case Design_Group:
//                departmentPositions.add(Designer);
//                departmentPositions.add(Painter);
//                break;
//            case Administrative_Group:
//                departmentPositions.add(Administrative_Commissioner);
//                break;
//            case Photograph_Group:
//                departmentPositions.add(Photographer);
//                break;
//            case Technology_Group:
//                departmentPositions.add(Web_Tools);
//                departmentPositions.add(PHP_Developer);
//                departmentPositions.add(UI_Designer);
//                break;
        }
        return departmentPositions;
    }
}
